/* Prism components - vod module: detail hero, play-source tabs + episodes, player
   frame, plot list, download list and cast grid. (List pages reuse .c-grid + card.)
   ASCII-only comments on purpose - non-ASCII in a comment can swallow the next rule. */

/* ---- shared empty state (public/notempty.html) ---- */
.c-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5em;padding:var(--space-xl) 0;color:var(--c-text-muted);text-align:center}
.c-empty .bi{font-size:2.4rem;line-height:1;opacity:.4}
.c-empty span{font-size:var(--fs-sm)}

/* ---- detail / play hero ---- */
.c-vodhero{display:flex;gap:var(--space-lg);container-type:inline-size;
  background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);
  padding:clamp(1rem,2.5vw,1.75rem)}
.c-vodhero__poster{position:relative;flex:none;width:200px;aspect-ratio:3 / 4;border-radius:var(--radius-md);overflow:hidden;background:var(--c-surface-2)}
.c-vodhero__poster img{width:100%;height:100%;object-fit:cover}
.c-vodhero__badge{position:absolute;top:.5em;left:.5em;font-size:var(--fs-xs);padding:.25em .6em;border-radius:var(--radius-sm);background:var(--c-accent);color:var(--c-accent-ink)}
.c-vodhero__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.7em}
.c-vodhero__title{font-size:var(--fs-2xl);line-height:var(--lh-tight)}
.c-vodhero__metaline{display:flex;flex-wrap:wrap;align-items:center;gap:.45em .9em;font-size:var(--fs-sm);color:var(--c-text-muted)}
.c-vodhero__metaline a{color:var(--c-text-muted)}
.c-vodhero__metaline a:hover{color:var(--c-accent)}
.c-vodhero__score{color:#10b981;font-weight:700;font-size:var(--fs-lg)}
.c-vodhero__remark{color:var(--c-accent);font-weight:500}
.c-vodhero__rows{display:flex;flex-direction:column;gap:.4em;font-size:var(--fs-sm)}
.c-vodhero__row{display:flex;gap:.5em;min-width:0}
.c-vodhero__row .lbl{flex:none;color:var(--c-text-muted)}
.c-vodhero__row .val{min-width:0}
.c-vodhero__blurb{font-size:var(--fs-sm);color:var(--c-text-muted);line-height:1.7;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.c-vodhero__btns{margin-top:auto;display:flex;flex-wrap:wrap;gap:var(--space-sm);padding-top:.3em}
.c-vodbtn{display:inline-flex;align-items:center;gap:.45em;padding:.6em 1.3em;border-radius:var(--radius-pill);font-size:var(--fs-sm);font-weight:600;
  background:var(--c-surface-2);border:1px solid var(--c-border);color:var(--c-text);transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease),filter var(--dur) var(--ease)}
.c-vodbtn:hover{border-color:var(--c-accent);color:var(--c-accent)}
.c-vodbtn--primary{background:var(--c-accent);border-color:var(--c-accent);color:var(--c-accent-ink)}
.c-vodbtn--primary:hover{color:var(--c-accent-ink);filter:brightness(1.08)}
.c-vodbtn .bi{font-size:1.1em}
@container (max-width:520px){
  .c-vodhero__poster{width:118px}
  .c-vodhero__title{font-size:var(--fs-xl)}
}

/* ---- play-source tabs + episode grid (detail + play) ---- */
.c-playsrc__tabs{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-bottom:var(--space-md)}
.c-playsrc__tab{display:inline-flex;align-items:center;gap:.4em;padding:.45em .95em;border-radius:var(--radius-md);font-size:var(--fs-sm);
  background:var(--c-surface-2);border:1px solid var(--c-border);color:var(--c-text);transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease)}
.c-playsrc__tab:hover{border-color:var(--c-accent);color:var(--c-accent)}
.c-playsrc__tab.is-active{background:var(--c-accent);border-color:var(--c-accent);color:var(--c-accent-ink)}
.c-playsrc__count{font-size:var(--fs-xs);opacity:.7}
.c-playsrc__eps{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(98px,100%),1fr));gap:var(--space-xs)}
.c-playsrc__ep{display:block;text-align:center;padding:.62em .5em;border-radius:var(--radius-sm);font-size:var(--fs-sm);
  background:var(--c-surface-2);border:1px solid var(--c-border);color:var(--c-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease)}
.c-playsrc__ep:hover{border-color:var(--c-accent);color:var(--c-accent)}
.c-playsrc__ep.is-active{background:var(--c-accent);border-color:var(--c-accent);color:var(--c-accent-ink);font-weight:600}
.c-playsrc__empty{list-style:none;color:var(--c-text-muted);font-size:var(--fs-sm);padding:.6em}

/* ---- player frame (play page) ---- */
.c-player{position:relative;width:100%;aspect-ratio:16 / 9;background:#000;border-radius:var(--radius-md);overflow:hidden;margin-bottom:var(--space-md)}
.c-player iframe,.c-player video,.c-player>div,.c-player .MacPlayer{position:absolute!important;inset:0;width:100%!important;height:100%!important;border:0;margin:0}
.c-player__notice{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5em;color:#fff;text-align:center;padding:1.5em;
  background-size:cover;background-position:center}
.c-playbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md)}
.c-playbar__now{flex:1 1 auto;min-width:0;font-size:var(--fs-sm);color:var(--c-text-muted)}
.c-playbar__now strong{color:var(--c-text)}

/* ---- plot list ---- */
.c-plot{display:flex;flex-direction:column}
.c-plot__item{padding:var(--space-md) 0;border-bottom:1px solid var(--c-border)}
.c-plot__item:first-child{padding-top:0}
.c-plot__item:last-child{border-bottom:0}
.c-plot__name{font-weight:600;font-size:var(--fs-md);color:var(--c-text)}
.c-plot__name:hover{color:var(--c-accent)}
.c-plot__text{font-size:var(--fs-sm);color:var(--c-text-muted);line-height:1.75;margin-top:.45em}

/* ---- download list ---- */
.c-down{display:flex;flex-direction:column;gap:var(--space-lg)}
.c-down__srchead{display:flex;align-items:center;gap:.5em;font-weight:600;margin-bottom:var(--space-sm);padding-bottom:var(--space-sm);border-bottom:1px solid var(--c-border)}
.c-down__items{display:flex;flex-direction:column}
.c-down__item{display:flex;align-items:center;gap:var(--space-md);padding:.7em 0;border-bottom:1px solid var(--c-border)}
.c-down__item:last-child{border-bottom:0}
.c-down__name{flex:none;width:120px;font-size:var(--fs-sm);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.c-down__url{flex:1;min-width:0;font-size:var(--fs-xs);color:var(--c-text-muted);background:var(--c-surface-2);border:1px solid var(--c-border);border-radius:var(--radius-sm);padding:.45em .65em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.c-down__btn{flex:none;display:inline-flex;align-items:center;gap:.35em;padding:.45em .9em;border-radius:var(--radius-pill);font-size:var(--fs-xs);font-weight:600;background:var(--c-accent);color:var(--c-accent-ink)}
.c-down__btn:hover{color:var(--c-accent-ink);filter:brightness(1.08)}
@container (max-width:520px){.c-down__url{display:none}}

/* ---- topic detail hero (banner) ---- */
.c-tophero{position:relative;border-radius:var(--radius-lg);overflow:hidden;background:var(--c-surface-2);aspect-ratio:21 / 8;min-height:180px}
.c-tophero__img{width:100%;height:100%;object-fit:cover}
.c-tophero__scrim{position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,10,15,.9) 0%,rgba(8,10,15,.28) 58%,transparent 100%)}
.c-tophero__body{position:absolute;left:0;right:0;bottom:0;padding:clamp(1rem,3vw,2rem);color:#fff}
.c-tophero__title{font-size:var(--fs-2xl);color:#fff;line-height:var(--lh-tight);text-shadow:0 1px 10px rgba(0,0,0,.55)}
.c-tophero__meta{display:flex;flex-wrap:wrap;gap:.4em 1.1em;margin-top:.55em;font-size:var(--fs-sm);opacity:.92}
.c-tophero__blurb{margin-top:.5em;font-size:var(--fs-sm);opacity:.9;max-width:60ch;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}

/* ---- topic / collection cards (home "topics" list) ---- */
.c-topgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:var(--space-md)}
.c-topcard{display:flex;flex-direction:column;gap:.5em}
.c-topcard__cover{position:relative;aspect-ratio:16 / 9;border-radius:var(--radius-md);overflow:hidden;background:var(--c-surface-2);box-shadow:var(--shadow-1)}
.c-topcard__cover img{width:100%;height:100%;object-fit:cover;transition:transform .35s var(--ease)}
.c-topcard:hover .c-topcard__cover img{transform:scale(1.05)}
.c-topcard__scrim{position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,10,15,.82) 0%,rgba(8,10,15,.1) 55%,transparent 100%)}
.c-topcard__name{position:absolute;left:0;right:0;bottom:0;padding:.7em .8em;color:#fff;font-weight:600;font-size:var(--fs-md);line-height:1.25;text-shadow:0 1px 8px rgba(0,0,0,.5)}
.c-topcard__sub{font-size:var(--fs-xs)}

/* ---- website / channel cards (home "channels" list) ---- */
.c-chgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr));gap:var(--space-md)}
.c-chcard{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);
  background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-md);box-shadow:var(--shadow-1);
  transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.c-chcard:hover{border-color:var(--c-accent);box-shadow:var(--shadow-2)}
.c-chcard__logo{flex:none;width:52px;height:52px;border-radius:var(--radius-md);overflow:hidden;background:var(--c-surface-2);display:flex;align-items:center;justify-content:center}
.c-chcard__logo img{width:100%;height:100%;object-fit:cover}
.c-chcard__tv{font-size:1.7rem;color:var(--c-accent)}

/* ---- live play: lines + channel picker ---- */
.c-live__lines{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-bottom:var(--space-md)}
.c-live__pick{display:flex;flex-direction:column;gap:2px;max-height:560px;overflow-y:auto}
.c-live__ch{display:flex;align-items:center;gap:.6em;padding:.6em .7em;border-radius:var(--radius-sm);font-size:var(--fs-sm);color:var(--c-text)}
.c-live__ch:hover{background:var(--c-surface-2);color:var(--c-accent)}
.c-live__ch.is-active{background:var(--c-accent);color:var(--c-accent-ink)}
.c-live__ch .bi{flex:none;opacity:.65}
.c-chcard__body{min-width:0;display:flex;flex-direction:column;gap:.2em}
.c-chcard__name{font-weight:600;font-size:var(--fs-sm)}
.c-chcard:hover .c-chcard__name{color:var(--c-accent)}
.c-chcard__sub{font-size:var(--fs-xs)}

/* ---- manga chapters ---- */
.c-chaps{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(120px,100%),1fr));gap:var(--space-xs)}
.c-chap{display:block;text-align:center;padding:.62em .6em;border-radius:var(--radius-sm);font-size:var(--fs-sm);
  background:var(--c-surface-2);border:1px solid var(--c-border);color:var(--c-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease)}
.c-chap:hover{border-color:var(--c-accent);color:var(--c-accent)}
.c-chap.is-active{background:var(--c-accent);border-color:var(--c-accent);color:var(--c-accent-ink);font-weight:600}

/* ---- manga reader ---- */
.c-reader{max-width:820px;margin:0 auto;display:flex;flex-direction:column;background:#0b0d12;border-radius:var(--radius-md);overflow:hidden}
.c-reader__page{display:block;font-size:0}
.c-reader__page img{display:block;width:100%;height:auto}
.c-reader__empty{padding:var(--space-xl);text-align:center;color:rgba(255,255,255,.72);font-size:var(--fs-sm)}

/* ---- actor profile (actor detail) ---- */
.c-profile{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr));gap:0 var(--space-lg)}
.c-profile__row{display:flex;gap:.6em;font-size:var(--fs-sm);padding:.55em 0;border-bottom:1px solid var(--c-border)}
.c-profile__lbl{flex:none;width:5em;color:var(--c-text-muted)}
.c-profile__val{min-width:0;word-break:break-word}
.c-works{display:flex;flex-wrap:wrap;gap:var(--space-xs)}
.c-works__tag{display:inline-flex;align-items:center;padding:.4em .9em;border-radius:var(--radius-pill);font-size:var(--fs-sm);
  background:var(--c-surface-2);border:1px solid var(--c-border);color:var(--c-text);transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease)}
.c-works__tag:hover{border-color:var(--c-accent);color:var(--c-accent)}

/* ---- search result header ---- */
.c-searchhead{margin-bottom:var(--space-lg);font-size:var(--fs-sm);color:var(--c-text-muted)}
.c-searchhead strong{color:var(--c-accent);font-weight:600}

/* ---- cast grid (role page) ---- */
.c-cast{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(112px,100%),1fr));gap:var(--space-md)}
.c-cast__item{display:block;text-align:center}
.c-cast__pic{width:100%;aspect-ratio:3 / 4;border-radius:var(--radius-md);overflow:hidden;background:var(--c-surface-2);margin-bottom:.5em}
.c-cast__pic img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur) var(--ease)}
.c-cast__item:hover .c-cast__pic img{transform:scale(1.05)}
.c-cast__name{font-size:var(--fs-sm);font-weight:500}
.c-cast__item:hover .c-cast__name{color:var(--c-accent)}
.c-cast__role{font-size:var(--fs-xs);color:var(--c-text-muted);margin-top:.15em}
